package com.itheima.service.pms;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.dto.pms.CreateWithChildrenDto;
import com.itheima.dto.pms.ProductCreateAttributeIdDto;
import com.itheima.result.PageResult;
import com.itheima.result.ResultData;
import com.itheima.vo.pms.ProductCategoryParam;

import java.util.List;

public interface PmsProductCategoryService extends IService<ProductCategoryParam> {
    /**
     * 添加商品分类
     * @param productCreateAttributeIdDto
     * @return
     */
    void addProductCreate(ProductCreateAttributeIdDto productCreateAttributeIdDto);

    /**
     * 删除商品分类
     * @param id
     * @return
     */
    ResultData deleteCategory(Long id);

    /**
     * 查询所有一级分类及子分类
     * @return
     */
    List<CreateWithChildrenDto> listWithChildren();

    /**
     * 分页查询商品分类
     * @param parentId
     * @param pageNum
     * @param pageSize
     * @return
     */
    ResultData listCategory(Long parentId, Long pageNum, Long pageSize);

    /**
     * 修改导航栏显示状态
     * @param ids
     * @param navStatus
     * @return
     */
    void updateNavStatus(List<Long> ids, Integer navStatus);

    /**
     * 修改显示状态
     * @param ids
     * @param showStatus
     * @return
     */
    void updateShowStatus(List<Long> ids, Integer showStatus);

    /**
     * 根据id获取商品分类
     * @param id
     * @return
     */
    ProductCategoryParam getCategory(Long id);

    /**
     * 修改商品分类
     * @param id
     * @param productCategoryParam
     * @return
     */
    void updateCategory(Long id, ProductCategoryParam productCategoryParam);
}
